package edu.cuit.avatar.callback;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/7/11 8:48
 */
public class LambdaTalking {
    private int interval = 1000;
    private boolean beep = false;

    public LambdaTalking() {
    }

    public LambdaTalking(int interval, boolean beep) {
        this.interval = interval;
        this.beep = beep;
    }

    public void start(){
//        Timer timer = new Timer(interval, (ActionEvent e) ->{
//            //该事件发生时发出一个通告
//            System.out.println("At the tone，the time is "
//                    + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));
//            //内部类可以直接访问外围类的成员
//            if(beep)
//                //伴随响铃
//                Toolkit.getDefaultToolkit().beep();
//        });
        //简化：方法参数类型可以省略(基于上下文进行类型推导),如果只有一个参数,()也可以省略
        //方法体如果只有一句代码,{}也可以省略
        Timer timer = new Timer(interval, e ->{
            //该事件发生时发出一个通告
            System.out.println("At the tone，the time is "
                    + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now()));
            //内部类可以直接访问外围类的成员
            if(beep)
                //伴随响铃
                Toolkit.getDefaultToolkit().beep();
        });

        timer.start();
    }
}
